import { createRouter, createWebHistory } from 'vue-router'
import Home from '../view/index.vue'
import Login from '../view/Login.vue'
import Register from '../view/Register.vue'
import Register from '../view/Merchant.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    meta: { requiresAuth: true } // 需要登录才能访问
  },
  {
    path: '/login',
    name: 'Login',
    component: Login,
    meta: { requiresAuth: false } // 不需要登录即可访问
  },
  {
    path: '/register',
    name: 'Register',
    component: Register,
    meta: { requiresAuth: false } // 不需要登录即可访问
  },
  {
    path: '/:pathMatch(.*)*',
    redirect: '/login' // 未知路径重定向到登录页
  },
  {
    path: '/merchant',
    name: 'Merchant',
    component: () => import('../view/Merchant.vue'),
    meta: { requiresAuth: true } // 需要登录才能访问
  }

]

const router = createRouter({
  history: createWebHistory(),
  routes
})

// 全局导航守卫，检查用户是否已登录
router.beforeEach((to, from, next) => {
  const requiresAuth = to.meta.requiresAuth
  // 同时检查localStorage和sessionStorage中的用户信息
  const userInfo = localStorage.getItem('user') || sessionStorage.getItem('user')
  
  if (requiresAuth && !userInfo) {
    // 需要登录但未登录，重定向到登录页
    next('/login')
  } else if ((to.name === 'Login' || to.name === 'Register') && userInfo) {
    // 已登录用户不应访问登录或注册页，重定向到首页
    next('/')
  } else {
    // 其他情况正常跳转
    next()
  }
})

export default router